package net.guerlab.smart.wx.core.message;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 微信小程序订阅消息
 *
 * @author guer
 */
@Data
public class WxMaSubscribeMessageData {

    /**
     * 所需下发的模板消息的id
     */
    @ApiModelProperty("所需下发的模板消息的id")
    private String templateId;

    /**
     * 点击模板卡片后的跳转页面，仅限本小程序内的页面。支持带参数,（示例index?foo=bar）。该字段不填则模板无跳转。
     */
    @ApiModelProperty("点击模板卡片后的跳转页面，仅限本小程序内的页面。支持带参数,（示例index?foo=bar）。该字段不填则模板无跳转。")
    private String page;

    /**
     * 模板内容，不填则下发空模板.
     */
    @ApiModelProperty("模板内容，不填则下发空模板.")
    private List<TemplateData> data;

    /**
     * 跳转小程序类型：developer为开发版；trial为体验版；formal为正式版；默认为正式版
     */
    @ApiModelProperty("跳转小程序类型：developer为开发版；trial为体验版；formal为正式版；默认为正式版")
    private String miniProgramState = "formal";

    /**
     * 进入小程序查看的语言类型，支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文)，默认为zh_CN
     */
    @ApiModelProperty("进入小程序查看的语言类型，支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文)，默认为zh_CN")
    private String lang = "zh_CN";

    /**
     * 模板内容
     */
    @Data
    @ApiModel("模板内容")
    public static class TemplateData {

        /**
         * 字段名
         */
        @ApiModelProperty("字段名")
        private String name;

        /**
         * 字段值
         */
        @ApiModelProperty("字段值")
        private String value;
    }
}
